/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function showMap(){
    if(navigator.geolocation)        
        navigator.geolocation.getCurrentPosition(showGMaps);
    else
        jConfirm('Este navegador no soporta la Geolocalización','Error','Error Dialog');
}


//show Google Maps
function showGMaps(position){
    //window.alert("Lat : "+position.coords.latitude+", Lng:"+position.coords.longitude);

    var myOptions = {
        'zoom':10,
        'mapTypeId':google.maps.MapTypeId.ROADMAP
    };
    var container = document.getElementById("mapGMap");
    var map = new google.maps.Map(container,myOptions);
    var iniLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
    var contentString = "\nTu geolocalización es aquí";
    var infoWindow = new google.maps.InfoWindow();

    map.setCenter(iniLocation);
    infoWindow.setContent(contentString);
    infoWindow.setPosition(iniLocation);
    infoWindow.open(map);
}

function checkFile(elem){
    var nameFile = document.getElementById(elem).value;
    if(nameFile != ""){
        var formatFile = nameFile.split('.')[nameFile.split('.').length-1];
        //alert(formatFile);
        if(formatFile=="xml")
            return nameFile.split("\\")[nameFile.split("\\").length-1];
        else
            jConfirm('Tipo de dato no soportado','Error','Error Dialog');
    }else
        jConfirm('Debe seleccionar un archivo primero','Error','Error Dialog');
    return null;
}

function generate(elem){
    var nameFile = checkFile(elem);
    if(nameFile != null){
        var argsArray=new Array();
        argsArray.push(newArg("action","generate"));
        argsArray.push(newArg("file",nameFile));
        argsArray.join("&");
        sendRequest("../controller/map.jsp",argsArray,showGenerate);
    }
}

function showGenerate(){
    if (isValidResponse(this))
    {
        var res=this.responseText;
        if(res!="")
        {
            var info=eval("("+res+")");
            if(info.errorcode == 0)
                jAlert('Archivo generado correctamente','Ok', 'Success Dialog');
            else if(info.errorcode == -3)
                jConfirm('Error guardando archivo','Error', 'Error Dialog');
            else if(info.errorcode == -1)
                jConfirm('Error obteniendo datos para el archivo','Error', 'Error Dialog');
            else
                jConfirm('Acceso Incorrecto','Error', 'Error Dialog');
        }
    }
}

function load(elem){
    var nameFile = checkFile(elem);
    if(nameFile != null){
        var argsArray=new Array();
        argsArray.push(newArg("action","load"));
        argsArray.push(newArg("file",nameFile));
        argsArray.join("&");
        sendRequest("../controller/map.jsp",argsArray,showLoad);
    }
}

function showLoad(){
    if (isValidResponse(this))
    {
        var res=this.responseText;
        if(res!="")
        {
            var info=eval("("+res+")");
            if(info.errorcode == 0){
                jAlert('Archivo cargado correctamente','Ok', 'Success Dialog');
                var elemDiv = document.getElementById("routes");
                var codeHTML = "<select id=\"cities\">";
                for(var i=0; i<info.data.length; i++){
                    codeHTML += "<option value=\"" + info.data[i].id +"\">"+ info.data[i].source + '-' + info.data[i].destination +"</option>";
                }
                codeHTML += "</select>";
                elemDiv.innerHTML = codeHTML;
                drawRoute(info.data[0]);
            }
            else if(info.errorcode == -3)
                jConfirm('No se pudo leer el archivo','Error', 'Error Dialog');
            else if(info.errorcode == -4)
                jConfirm('El archivo no existe','Error', 'Error Dialog');
            else if(info.errorcode == -5)
                jConfirm('Estructura XML no reconocida','Error', 'Error Dialog');
            else
                jConfirm('Acceso Incorrecto','Error', 'Error Dialog');
        }
    }
}

//function drawRoute(datas){
//    var canvas = document.getElementById("canvasGraph");
//    if (canvas && canvas.getContext) {
//        var context = canvas.getContext('2d');
//        if (context) {
//            var h= canvas.height;
//            var w = canvas.width;
//            context.fillStyle = '#FFF';
//            context.fillRect(0, 0, w, h);
//            context.stroke();
//
//            for(var i=0; i<datas.length; i++){
//                context.beginPath();
//                context.fillStyle = 'black';
//                for(var j=0; j<2; j++){
//                    context.arc(20+(40*i)+(20*j),20+(20*i),10,0,360,true);
//                    context.stroke();
//                    context.fill();
//                }
//                context.closePath();
//            }
//        }
//    }
//}

function drawRoute(datas){
    var canvas = document.getElementById("canvasGraph");
    if (canvas && canvas.getContext) {
        var context = canvas.getContext('2d');
        if (context) {
            var h= canvas.height;
            var w = canvas.width;
            context.fillStyle = '#FFF';
            context.fillRect(0, 0, w, h);
            context.stroke();

            context.beginPath();
            context.fillStyle = 'black';
            for(var j=0; j<2; j++){
                context.arc(20+(40*j),20+(20*j),10,0,360,true);
                context.stroke();
                context.fill();
            }
            context.closePath();
        }
    }
}